home *** CD-ROM | disk | FTP | other *** search
- Introduction.
-
- This is intended as a collection of documentation about all the various
- display adapters for the IBM PC series (and relatives).
-
-
- Terminology/style:
-
- The BIOS calls are mostly taken directly from Ralf's interrupt list
- and tends to follow its style and structure.
-
- The register descriptions are sorted by the register number.
-
- All register addresses, data values et cetera are given in hexadecimal.
-
- 3d4h means 3D4h when in color mode and 3B4h when in monochrome mode.
-
- 3CEh index 3 means register 3CEh is set to 3 and register 3CFh is the
- data port. See notes on register 3C0h under VGA registers.
- On some cards write operations can be done with a single OUTW
- instruction. This may fail on some cards or machines.
- ATI cards require the index to be updated before each access to
- the dataport.
-
- (R) means the register is Read Only.
- (W) means the register is Write Only.
- (R/W) means the register is both Readable and Writable.
- (r/W) means the register is Write Only on EGA cards and Read/Writable
- on VGA cards.
-
-
- Examples are in Turbo Pascal for readability (your mileage may vary,
- I don't discuss politics, choice of computer, editor, keyboard,
- programming language or other religious matters on the net :-) ).
-
-
- A short translation of terms:
-
- Pascal: C: Assembler: Description:
-
- x:byte; unsigned char x; x DB ? 8 bit unsigned byte
-
- y:word; unsigned int y; y DW ? 16 bit unsigned word.
-
- z:integer; int z; z DW ? 16 bit signed word.
-
- w:longint; long w; w DD ? 32 bit signed doubleword
-
- s:string[20]; char s[21]; x DB 20 dup(?) a 20 character string
-
- $ABCD 0xABCD 0ABCDh The value 43981 (ABCD hex)
-
- x:=port[$3CC] x=inp(0x3CC) MOV DX,03CCh Read an 8bit value from
- IN AL,DX I/O port $3CC.
-
- y:=portw[$3CE] y=inpw(0x3CE) MOV DX,03CEh Read an 16bit value from
- IN AX,DX I/O ports $3CE and $3CF.
-
- port[$3C2]:=x outp(0x3C2,x) MOV DX,03C2h Write an 8bit value to
- OUT DX,AL I/O port $3C2.
-
- portw[$3CE]:=y outpw(0x3CE,y) MOV DX,03CEh Write an 16bit value to
- OUT DX,AX I/O ports $3CE and $3CF.
-
- {Comment} /* comment */ ;comment Comments.
-
- 'string' "string" DB "string" Text string
-
- procedure x; void x(void) x PROC A procedure/function
- var x:integer; { ;Alloc x on stack with no parameters
- begin int x; _code_ a local variable
- _code_ _code_ ;reset stack and main body.
- end; } RET
-
- function y: int y(void) Well you A function returning
- integer; { figure it out! an integer.
- begin
- y:=123; return(123)
- end; }
-
-
-
-
- The examples use a number of simple rutines:
-
- procedure vio(ax:word); {Calls interrupt 10h with register AX=parameter ax
- other registers can be set in the rp structure.
- rp.ax is set to the return value in the AX register}
-
- function inp(reg:word):byte; {returns a byte from I/O port REG.}
-
- procedure outp(reg,val:word); {writes the byte VAL to I/O port REG}
-
- function rdinx(pt,inx:word):word; {read register PT index INX}
-
- procedure wrinx(pt,inx,val:word); {write VAL to register PT index INX}
-
- procedure modinx(pt,inx,mask,nwv:word);
- {In register PT index INX change the bits
- indicated by MASK to the ones in NWV
- keeping the other bits unchanged).
-
- function tstrg(pt,msk:word):boolean; {Returns true if the bits specified in MSK
- are read/writable in register PT}
-
- function testinx(pt,rg:word):boolean; {Returns true if all 8 bits of register
- PT index RG are read/writable}
-
- function testinx2(pt,rg,msk:word):boolean;
- {Returns true if the bits specified in MSK
- are read/writable in register PT index RG}
-
- procedure dactopel; {Forces the DAC back to PEL (normal) mode}
-
- procedure dactocomm; {Enter command mode of HiColor DACs}
-
-
-
-
- References:
-
- Richard F. Ferraro's Programmer's guide to the EGA and VGA cards 2nd ed.
- Addison-Wesley 1990. ISBN 0-201-57025-4.
-
- George Sutty and Steve Blair's Advanced Programmers Guide to Super VGAs.
- Brady Books 1990. ISBN 0-13-010455-8.
-
- John Mueller and Wallace Wang's The Ultimate DOS Programmer's Manual.
- Windcrest/McGraw-Hill 1990. ISBN 0-8306-3434-3.
-
- Ralf Brown's interrupt list version 33.
- (Simtel: info/inter33a.zip - info/inter33c.zip)
-
- John Bridge's VGAKIT52.
- (Simtel: vga/vgakit52.zip)
-
- Fractint v17.2 source (primarily video.asm).
- (Simtel: graphics/frasr172.zip)
-
- Configuration files and drivers from amongst others:
- CSHOW: (Simtel: graphics/cshw850a.zip)
- VPIC: (Simtel: gif/vpic51.zip)
- VUIMAGE: (Simtel: gif/vuimg330.zip)
- SVGA: (Simtel: gif/svga111.zip)
-
- PCVISION plus Frame Grabber User's Manual.
-
- Enhanced Graphics Adapter Reference Manual from HP.
-
- Data Sheet for the Yamaha 6388 VPDC.
-
- Commodore Advanced Graphics Adapter (AGA) manual.
-
- Chips and Technologies Inc datasheets for:
- 82c455A, 82c456, 82c457, 82c480, 65520/530.
-
- Truevision Targa+ Hardware Technical Reference Manual.
-
- The following have contributed information:
-
- Darren Senn <sinster@scintilla.capitola.ca.us>
- Tomi H Engdahl <then@vipunen.hut.fi>
- Jori Hamalainen <jhamala@kannel.lut.fi>
- H.R.R van Roosmalen and E. Zoer, Delft University of Technology,
- The Netherlands <huub@dutetvd.ET.TUDelft.NL>
- Eric ?? <praetzel@marconi.uwaterloo.ca>
- Frank Klemm <pfk@rz.uni-jena.de>
- Michael Schindler <michael@eichow.tuwien.ac.at>
- Steven Martin <Steven.Martin@eng.monash.edu.au>
- Kendall Bennett <kjb@cgl.citri.edu.au>
- Leonardo Loureiro <loureiro@fiu.edu>
-
-
- Disclaimer:
-
- All information herein is presented as is and without warranty.
- Use at your own risk.
-
-
- IBM PC, PC/XT, PC/AT, PCjr, PS/2, Micro Channel, Personal System/2,Enhanced Graphics
- Adapter, Color Graphics Adapter, Video Graphics Adapter, IBM Color Display, IBM
- Monochrome Display and 8514/A are trademarks of International Business Machines
- Corporation.
- MS-DOS is a trademark of Microsoft, Incorporated.
- Hercules is a trademark of Hercules Computer Technology, Inc.
- Multisync is a trademark of Nippon Electric Company (NEC).
- Brooktree and RAMDAC are trademarks of Brooktree Corporation.
- SMARTMAP is a trademark of Chips and Technologies, Incorporated.
- TARGA is a registered trademark of Truevision, Inc.
- All other product names are copyright and registered trademarks/tradenames of their
- respective owners.
-
-